﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Negocios;
using System.Collections.Generic;

namespace UI
{
    public partial class ManterUsuario : System.Web.UI.Page
    {
        public static bool inserir = false;

        protected void Page_Load(object sender, EventArgs e)
        {

        }
        
        protected void bt_novo_Click(object sender, EventArgs e)
        {
            inserir = true;
            enable();
        }

        protected void bt_cancelar_Click(object sender, EventArgs e)
        {
            disable();
        }

        protected void bt_salvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (tx_senha.Text != tx_senha_confirm.Text)
                {
                    tx_senha.Text = "";
                    tx_senha_confirm.Text = "";

                    throw new BOException("As senhas não conferem, por favor digigite novamente!");
                }

                UsuarioBO usuarioBO = new UsuarioBO();
                UsuarioBoMetodos usuarioBOMetodos = new UsuarioBoMetodos();

                usuarioBO.Login = tx_login.Text;
                usuarioBO.Nome  = tx_nome.Text;
                usuarioBO.Email = tx_email.Text;
                usuarioBO.Senha = tx_senha.Text;
                usuarioBO.Tipo  = Convert.ToInt32(nr_tipo.Text); ;

                if (inserir)
                {
                    usuarioBOMetodos.Inserir(usuarioBO);
                    tx_sucess.Text = "Usuario " + usuarioBO.Nome.ToLower() + " Adicionado com sucesso!";
                }
                else
                {
                    usuarioBOMetodos.Alterar(usuarioBO);
                    tx_sucess.Text = "Usuario " + usuarioBO.Nome.ToLower() + " Alterado com sucesso!";
                }
                disable();
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                tx_err.Text = ex.Message;
            }
        }

        protected void enable()
        {
            tx_login.Text = "";
            tx_nome.Text  = "";
            tx_email.Text = "";
            tx_senha.Text = "";
            tx_senha_confirm.Text = "";
            tx_sucess.Text = "";

            tx_login.Enabled = true;
            tx_nome.Enabled  = true;
            tx_email.Enabled = true;
            tx_senha.Enabled = true;
            tx_senha_confirm.Enabled = true;
            nr_tipo.Enabled = true;
            bt_salvar.Enabled = true;
            bt_cancelar.Enabled = true;
            tx_login.Focus();
        }

        protected void disable()
        {
            tx_login.Text = "";
            tx_nome.Text = "";
            tx_email.Text = "";
            tx_senha.Text = "";
            tx_senha_confirm.Text = "";
            tx_err.Text = "";
            
            tx_login.Enabled = false;
            tx_nome.Enabled = false;
            tx_email.Enabled = false;
            tx_senha.Enabled = false;
            tx_senha_confirm.Enabled = false;
            nr_tipo.Enabled = false;
            bt_salvar.Enabled = false;
            bt_cancelar.Enabled = false;
        
        }

        protected void bt_remover_Click(object sender, EventArgs e)
        {

            LinkButton lb = (LinkButton)sender;
            DataControlFieldCell celula = (DataControlFieldCell)lb.Parent;
            GridViewRow linha = (GridViewRow)celula.Parent;
            string login = linha.Cells[0].Text;

            UsuarioBO usuarioBO = new UsuarioBO();
            UsuarioBoMetodos usuarioBOMetodos = new UsuarioBoMetodos();

            usuarioBO.Login = login;

            usuarioBOMetodos.Excluir(usuarioBO);

            tx_sucess.Text = "Usuario " + login.ToLower() + " Removido com sucesso!";

            GridView1.DataBind();

        }


        protected void bt_alterar_Click(object sender, EventArgs e)
        {
            LinkButton lb = (LinkButton)sender;
            DataControlFieldCell celula = (DataControlFieldCell)lb.Parent;
            GridViewRow linha = (GridViewRow)celula.Parent;
            string login = linha.Cells[0].Text;

            UsuarioBO usuarioBO = new UsuarioBO();
            UsuarioBoMetodos usuarioBOMetodos = new UsuarioBoMetodos();

            usuarioBO.Login = login.Trim();

            usuarioBO = usuarioBOMetodos.Consultar(usuarioBO);

            inserir = false;
            enable();
            tx_login.Enabled = false;
            tx_login.Text = usuarioBO.Login.Trim();
            tx_nome.Text = usuarioBO.Nome.Trim();
            tx_email.Text = usuarioBO.Email.Trim();
            tx_senha.Text = usuarioBO.Senha.Trim();
            tx_senha_confirm.Text = usuarioBO.Senha.Trim();
        }

        protected void bt_consulta_Click(object sender, EventArgs e)
        {
            List<UsuarioBO> usuariosBO = new List<UsuarioBO>();
            UsuarioBoMetodos usuarioBOMetodos = new UsuarioBoMetodos();

            usuariosBO = usuarioBOMetodos.Consultar(tx_nome.Text, Convert.ToInt32(nr_tipo.Text));
            

            //tx_sucess.Text = "Usuario " + usuarioBO.Nome + " Adicionado com sucesso!";
            
            GridView1.DataBind();
         }
    }
}